using System;
using System.Collections;
using System.Web.Caching;

namespace WebMonitor.Http {
    public interface ICache : IEnumerable {
        object Add(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback);
        object Get(string key);
        new IDictionaryEnumerator GetEnumerator();
        void Insert(string key, object value);
        void Insert(string key, object value, CacheDependency dependencies);
        void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration);
        void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback);
        object Remove(string key);
        int Count { get; }
        object this[string key] { get; set; }
        TimeSpan NoSlidingExpiration { get; }
        DateTime NoAbsoluteExpiration { get; }
    }
}